package cn.kgc.springmvcday04.controller;

import cn.kgc.springmvcday04.entity.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.HttpSession;

/**
 * @author 课工场
 * @date 2023/10/18
 * @description
 * 在当前类中使用@ExceptionHandler 标识的方法 只对当前类中抛出的异常有效
 *  @ExceptionHandler
 *  springmvc 对异常的局部处理方案
 */
@Controller
@RequestMapping("user")
public class UserController {


    //该方法用于处理当前类中抛出的空指针异常
//    @ExceptionHandler(NullPointerException.class)
//    public String  nullPointMethod(NullPointerException e){
//
//        e.printStackTrace();
//
//        return "500";
//    }

    // 非受限资源  不用登录即可访问的资源  用户的登录操作
    @RequestMapping("login")
    public String  login(String username, String password, HttpSession session){

        if (username.equals("tom")&&"123456".equals(password)){

            User user = new User();
            user.setUsername(username);
            user.setPassword(password);

           session.setAttribute("user",user);

            return "main";
        }

        session.setAttribute("info","用户名或密码错误");

        return "login";
    }


    // 受限资源  必须登录后才可访问的资源
    @RequestMapping("add")
    public String  add(User user, HttpSession session){

        System.out.println("用户添加请求被接收"+user);
        return "main";
    }


    // 受限资源  必须登录后才可访问的资源
    @RequestMapping("delete")
    public String  delete( Integer id){

        System.out.println("用户删除请求被接收 id =  "+id);

        return "main";
    }

    @RequestMapping("logout")
    public String logout(HttpSession session){

//        session.removeAttribute("user");
        // 销毁session
        session.invalidate();

        return "redirect:/login.jsp";
    }
}
